﻿using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Newtonsoft.Json;

namespace YacME.Map
{
    [JsonObject(MemberSerialization.OptIn)]
    public class MapObject
    {
        private Vector2 _position;

        [JsonProperty]
        public Vector2 Position
        {
            get { return _position; }
            set { _position = value; }
        }

        private Vector2 _size;

        [JsonProperty]
        public Vector2 Size
        {
            get { return _size; }
            set { _size = value; }
        }

        private Vector2 _velocity;

        [JsonProperty]
        public Vector2 Velocity
        {
            get { return _velocity; }
            set { _velocity = value; }
        }

        [JsonProperty]
        public string RenderImageLocation { get; set; }

        [JsonProperty]
        public string ObjectName { get; set; }

        [JsonProperty]
        public Dictionary<string, object> Properties { get; set; }

        [JsonProperty]
        public List<string> UpdateFunctionNameList { get; set; }

        [JsonProperty]
        public Dictionary<Keys, List<string>> InputFunctionNameList { get; set; }

        [JsonProperty]
        public Dictionary<string, string> EventRecognitionFunctionNameList { get; set; }

        [JsonProperty]
        public Dictionary<string, List<string>> EventFunctionNameList { get; set; }
    }
}